/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Pod
Pod 相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef PodApiModel_h
#define PodApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKCommon/JDCloudOCSDKCommon.h>
#import <JDCloudOCSDKPod/PodModel.h>


@interface PodDescribeQuotaRequest:JDCloudRequest

/// resourceType - 资源类型，支持 [container, pod, secret]
   /// 
@property (strong,nonatomic,nonnull)  NSString*  resourceType;
-(id) initWithRegion:(NSString *)regionId
resourceType:(NSString*)resourceType;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
resourceType:(NSString*)resourceType;

@end

@interface PodExecCreateRequest:JDCloudRequest

/// 执行的命令
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  command;
/// 执行命令是否分配tty。默认不分配
@property (strong,nonatomic,nonnull)  NSNumber*  tty;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
/// container name
@property (strong,nonatomic,nonnull)  NSString*  containerName;
-(id) initWithRegion:(NSString *)regionId
command:(NSArray<NSString*>*)command
tty:(NSNumber*)tty
podId:(NSString*)podId
containerName:(NSString*)containerName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
command:(NSArray<NSString*>*)command
tty:(NSNumber*)tty
podId:(NSString*)podId
containerName:(NSString*)containerName;

@end

@interface PodExecGetExitCodeResult : NSObject
/// exec命令执行的退出码
 @property (strong,nonatomic,nonnull)  NSNumber*  execCode;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithExecCode:(NSNumber*) execCode;
@end

@interface PodAttachRequest:JDCloudRequest

/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
/// container name
@property (strong,nonatomic,nonnull)  NSString*  containerName;
-(id) initWithRegion:(NSString *)regionId
podId:(NSString*)podId
containerName:(NSString*)containerName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podId:(NSString*)podId
containerName:(NSString*)containerName;

@end

@interface PodDescribeContainerRequest:JDCloudRequest

/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
/// container name
@property (strong,nonatomic,nonnull)  NSString*  containerName;
-(id) initWithRegion:(NSString *)regionId
podId:(NSString*)podId
containerName:(NSString*)containerName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podId:(NSString*)podId
containerName:(NSString*)containerName;

@end

@interface PodExecGetExitCodeRequest:JDCloudRequest

/// ExecId
@property (strong,nonatomic,nonnull)  NSString*  execId;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
/// container name
@property (strong,nonatomic,nonnull)  NSString*  containerName;
-(id) initWithRegion:(NSString *)regionId
execId:(NSString*)execId
podId:(NSString*)podId
containerName:(NSString*)containerName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
execId:(NSString*)execId
podId:(NSString*)podId
containerName:(NSString*)containerName;

@end

@interface PodExecStartRequest:JDCloudRequest

/// ExecId
@property (strong,nonatomic,nonnull)  NSString*  execId;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
/// container name
@property (strong,nonatomic,nonnull)  NSString*  containerName;
-(id) initWithRegion:(NSString *)regionId
execId:(NSString*)execId
podId:(NSString*)podId
containerName:(NSString*)containerName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
execId:(NSString*)execId
podId:(NSString*)podId
containerName:(NSString*)containerName;

@end

@interface PodExecCreateResult : NSObject
/// exec id
 @property (strong,nonatomic,nonnull)  NSString*  execId;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithExecId:(NSString*) execId;
@end

@interface PodResizeTTYRequest:JDCloudRequest

/// tty row，取值范围：[10, 2000]
@property (strong,nonatomic,nonnull)  NSNumber*  height;
/// tty column，取值范围：[10, 1000]
@property (strong,nonatomic,nonnull)  NSNumber*  width;
/// exec ID
@property (strong,nonatomic,nonnull)  NSString*  execId;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
/// container name
@property (strong,nonatomic,nonnull)  NSString*  containerName;
-(id) initWithRegion:(NSString *)regionId
height:(NSNumber*)height
width:(NSNumber*)width
execId:(NSString*)execId
podId:(NSString*)podId
containerName:(NSString*)containerName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
height:(NSNumber*)height
width:(NSNumber*)width
execId:(NSString*)execId
podId:(NSString*)podId
containerName:(NSString*)containerName;

@end

@interface PodDeleteSecretRequest:JDCloudRequest

/// Secret Name
@property (strong,nonatomic,nonnull)  NSString*  name;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name;

@end

@interface PodDescribeSecretRequest:JDCloudRequest

/// Secret Name
@property (strong,nonatomic,nonnull)  NSString*  name;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name;

@end

@interface PodCreateSecretResult : NSObject
/// SecretName
 @property (strong,nonatomic,nonnull)  NSString*  secretName;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecretName:(NSString*) secretName;
@end

@interface PodModifyPodAttributeRequest:JDCloudRequest

/// 修改后的描述
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
descriptionValue:(NSString*)descriptionValue
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
descriptionValue:(NSString*)descriptionValue
podId:(NSString*)podId;

@end

@interface PodStartPodRequest:JDCloudRequest

/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podId:(NSString*)podId;

@end

@interface PodDescribePodRequest:JDCloudRequest

/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podId:(NSString*)podId;

@end

@interface PodCheckPodNameRequest:JDCloudRequest

/// 用户定义的 pod 名称，符合 DNS-1123 subdomain 规范。
@property (strong,nonatomic,nonnull)  NSString*  podName;
/// 需要创建的 pod 总数，默认创建一个，不同的总数会对校验结果产生影响。
@property (strong,nonatomic,nonnull)  NSNumber*  maxCount;
-(id) initWithRegion:(NSString *)regionId
podName:(NSString*)podName
maxCount:(NSNumber*)maxCount;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podName:(NSString*)podName
maxCount:(NSNumber*)maxCount;

@end

@interface PodAssociateElasticIpRequest:JDCloudRequest

/// 弹性IP ID
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId
podId:(NSString*)podId;

@end

@interface PodDeletePodRequest:JDCloudRequest

/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podId:(NSString*)podId;

@end

@interface PodCreatePodsResult : NSObject
/// PodIds
 @property (strong,nonatomic,nonnull)  NSArray<NSString*>*  podIds;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPodIds:(NSArray<NSString*>*) podIds;
@end

@interface PodStopPodRequest:JDCloudRequest

/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podId:(NSString*)podId;

@end

@interface PodDisassociateElasticIpRequest:JDCloudRequest

/// 弹性IP ID
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId
podId:(NSString*)podId;

@end

@interface PodCheckPodNameResult : NSObject
/// 用户指定 podName 是否通过校验 0 通过 1 名称为空 2 不符合规范 3 重名。
 @property (strong,nonatomic,nonnull)  NSNumber*  code;
/// code 字段非零时，给出详细原因。
 @property (strong,nonatomic,nonnull)  NSString*  reason;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithCode:(NSNumber*) code

    reason:(NSString*)reason;
@end

@interface PodGetContainerLogsRequest:JDCloudRequest

/// 返回日志文件中倒数 tailLines 行，如不指定，默认从容器启动时或 sinceSeconds 指定的时间读取。
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  tailLines;
/// 返回相对于当前时间之前sinceSeconds之内的日志。
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  sinceSeconds;
/// 限制返回的日志文件内容字节数，取值范围 [1-4]KB，最大 4KB.
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  limitBytes;
/// 日志时间上限，不传表示不限时间
   /// 
@property (strong,nonatomic,nonnull)  NSString*  startTime;
/// 日志时间下限，不传表示不限时间
   /// 
@property (strong,nonatomic,nonnull)  NSString*  endTime;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
/// container name
@property (strong,nonatomic,nonnull)  NSString*  containerName;
-(id) initWithRegion:(NSString *)regionId
tailLines:(NSNumber*)tailLines
sinceSeconds:(NSNumber*)sinceSeconds
limitBytes:(NSNumber*)limitBytes
startTime:(NSString*)startTime
endTime:(NSString*)endTime
podId:(NSString*)podId
containerName:(NSString*)containerName;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
tailLines:(NSNumber*)tailLines
sinceSeconds:(NSNumber*)sinceSeconds
limitBytes:(NSNumber*)limitBytes
startTime:(NSString*)startTime
endTime:(NSString*)endTime
podId:(NSString*)podId
containerName:(NSString*)containerName;

@end

@interface PodDescribeQuotaResult : NSObject
/// Quota
 @property (strong,nonatomic,nonnull)  PodQuota*  quota;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithQuota:(PodQuota*) quota;
@end

@interface PodDescribeQuotaResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDescribeQuotaResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDescribeQuotaResult*) result;
@end

@interface PodDescribeInstanceTypesResult : NSObject
/// InstanceTypes
 @property (strong,nonatomic,nonnull)  NSArray<InstanceType*>*  instanceTypes;
/// SpecificInstanceTypes
 @property (strong,nonatomic,nonnull)  NSArray<InstanceType*>*  specificInstanceTypes;
/// 总数量
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithInstanceTypes:(NSArray<InstanceType*>*) instanceTypes

    specificInstanceTypes:(NSArray<InstanceType*>*)specificInstanceTypes

    totalCount:(NSNumber*)totalCount;
@end

@interface PodDescribeInstanceTypesResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDescribeInstanceTypesResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDescribeInstanceTypesResult*) result;
@end

@interface PodDescribeInstanceTypesRequest:JDCloudRequest

/// instanceTypes - 实例规格，精确匹配，支持多个
   /// az - 可用区，精确匹配，支持多个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
filters:(NSArray<Filter*>*)filters;

@end

@interface PodResizeTTYResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodResizeTTYResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodResizeTTYResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodResizeTTYResult*) result;
@end

@interface PodExecStartResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodExecStartResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodExecStartResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodExecStartResult*) result;
@end

@interface PodAttachResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodAttachResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodAttachResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodAttachResult*) result;
@end

@interface PodExecCreateResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodExecCreateResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodExecCreateResult*) result;
@end

@interface PodExecGetExitCodeResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodExecGetExitCodeResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodExecGetExitCodeResult*) result;
@end

@interface PodDescribeContainerResult : NSObject
/// Container
 @property (strong,nonatomic,nonnull)  Container*  container;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithContainer:(Container*) container;
@end

@interface PodDescribeContainerResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDescribeContainerResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDescribeContainerResult*) result;
@end

@interface PodCreateSecretRequest:JDCloudRequest

/// 机密数据名称，不能重复
   /// 
@property (strong,nonatomic,nonnull)  NSString*  name;
/// 机密数据的类型，目前仅支持：docker-registry 类型，用来和docker registry认证的类型。
   /// 
@property (strong,nonatomic,nonnull)  NSString*  secretType;
/// 机密的数据。&lt;br&gt;
   /// key 的有效字符包括字母、数字、-、_和.； &lt;br&gt;
   /// value 是 Base64 编码的字符串，不能包含换行符（在 linux 下使用 base64 -w 0选项），每个value长度上限为4KB，整个data的长度不能超过256KB; &lt;br&gt;
   /// 必须包含server、username、password 字段，email 字段是可选的。&lt;br&gt;
   /// 
@property (strong,nonatomic,nonnull)  DockerRegistryData*  data;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
secretType:(NSString*)secretType
data:(DockerRegistryData*)data;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
secretType:(NSString*)secretType
data:(DockerRegistryData*)data;

@end

@interface PodDeleteSecretResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodDeleteSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDeleteSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDeleteSecretResult*) result;
@end

@interface PodDescribeSecretResult : NSObject
/// Secret
 @property (strong,nonatomic,nonnull)  Secret*  secret;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecret:(Secret*) secret;
@end

@interface PodDescribeSecretsRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为20；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// name - secret名称，支持模糊搜索
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface PodDescribeSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDescribeSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDescribeSecretResult*) result;
@end

@interface PodCreateSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodCreateSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodCreateSecretResult*) result;
@end

@interface PodDescribeSecretsResult : NSObject
/// Secrets
 @property (strong,nonatomic,nonnull)  NSArray<Secret*>*  secrets;
/// TotalCount
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecrets:(NSArray<Secret*>*) secrets

    totalCount:(NSNumber*)totalCount;
@end

@interface PodDescribeSecretsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDescribeSecretsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDescribeSecretsResult*) result;
@end

@interface PodDescribePodsResult : NSObject
/// Pods
 @property (strong,nonatomic,nonnull)  NSArray<Pod*>*  pods;
/// TotalCount
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPods:(NSArray<Pod*>*) pods

    totalCount:(NSNumber*)totalCount;
@end

@interface PodModifyPodAttributeResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodModifyPodAttributeResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodModifyPodAttributeResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodModifyPodAttributeResult*) result;
@end

@interface PodDisassociateElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodStopPodResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodStopPodResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodStopPodResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodStopPodResult*) result;
@end

@interface PodGetContainerLogsResult : NSObject
/// Logs
 @property (strong,nonatomic,nonnull)  Logs*  logs;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithLogs:(Logs*) logs;
@end

@interface PodGetContainerLogsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodGetContainerLogsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodGetContainerLogsResult*) result;
@end

@interface PodDescribePodsRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为20；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// podId - pod ID，精确匹配，支持多个
   /// privateIpAddress - 主网卡IP地址，模糊匹配，支持单个
   /// az - 可用区，精确匹配，支持多个
   /// vpcId - 私有网络ID，精确匹配，支持多个
   /// phase - pod 状态，精确匹配，支持多个
   /// name - 实例名称，模糊匹配，支持单个
   /// subnetId - 镜像ID，模糊匹配，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
/// Tag筛选条件
@property (strong,nonatomic,nonnull)  NSArray<PodTagFilter*>*  tags;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters
tags:(NSArray<PodTagFilter*>*)tags;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters
tags:(NSArray<PodTagFilter*>*)tags;

@end

@interface PodAssociateElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodCreatePodsRequest:JDCloudRequest

/// pod 创建参数
@property (strong,nonatomic,nonnull)  PodSpec*  podSpec;
/// 购买实例数量；取值范围：[1,100]
@property (strong,nonatomic,nonnull)  NSNumber*  maxCount;
/// 保证请求幂等性的字符串；最大长度64个ASCII字符
@property (strong,nonatomic,nonnull)  NSString*  clientToken;
-(id) initWithRegion:(NSString *)regionId
podSpec:(PodSpec*)podSpec
maxCount:(NSNumber*)maxCount
clientToken:(NSString*)clientToken;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
podSpec:(PodSpec*)podSpec
maxCount:(NSNumber*)maxCount
clientToken:(NSString*)clientToken;

@end

@interface PodRebuildPodRequest:JDCloudRequest

/// 重置容器相关参数
@property (strong,nonatomic,nonnull)  NSArray<RebuildContainerSpec*>*  containers;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
containers:(NSArray<RebuildContainerSpec*>*)containers
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
containers:(NSArray<RebuildContainerSpec*>*)containers
podId:(NSString*)podId;

@end

@interface PodDeletePodResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodResizePodResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodDescribePodResult : NSObject
/// Pod
 @property (strong,nonatomic,nonnull)  Pod*  pod;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithPod:(Pod*) pod;
@end

@interface PodStartPodResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodCheckPodNameResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodCheckPodNameResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodCheckPodNameResult*) result;
@end

@interface PodStartPodResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodStartPodResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodStartPodResult*) result;
@end

@interface PodCreatePodsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodCreatePodsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodCreatePodsResult*) result;
@end

@interface PodResizePodResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodResizePodResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodResizePodResult*) result;
@end

@interface PodRebuildPodResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface PodRebuildPodResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodRebuildPodResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodRebuildPodResult*) result;
@end

@interface PodDescribePodsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDescribePodsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDescribePodsResult*) result;
@end

@interface PodDescribePodResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDescribePodResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDescribePodResult*) result;
@end

@interface PodAssociateElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodAssociateElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodAssociateElasticIpResult*) result;
@end

@interface PodResizePodRequest:JDCloudRequest

/// 新实例类型，不可与原实例类型相同
@property (strong,nonatomic,nonnull)  NSString*  instanceType;
/// 新实例类型，不可与原实例类型相同
@property (strong,nonatomic,nonnull)  NSArray<ContainerResourceSpec*>*  containerResources;
/// Pod ID
@property (strong,nonatomic,nonnull)  NSString*  podId;
-(id) initWithRegion:(NSString *)regionId
instanceType:(NSString*)instanceType
containerResources:(NSArray<ContainerResourceSpec*>*)containerResources
podId:(NSString*)podId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
instanceType:(NSString*)instanceType
containerResources:(NSArray<ContainerResourceSpec*>*)containerResources
podId:(NSString*)podId;

@end

@interface PodDeletePodResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDeletePodResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDeletePodResult*) result;
@end

@interface PodDisassociateElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property PodDisassociateElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(PodDisassociateElasticIpResult*) result;
@end

#endif /* PodApiModel_h */
